package com.chinasoft.config;

/**
 * 用来整合shiro框架相关的配置类
 */
//@Configuration
//public class ShiroConfig {
//    //3.创建自定义realm
//
//    @Bean("realm")
//    public Realm getRealm(){
//        CustomerRealm customerRealm = new CustomerRealm();
//        //修改凭证校验匹配器
//        HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
//        //使用MD5加密
//        hashedCredentialsMatcher.setHashAlgorithmName("md5");
//        //迭代1024次
//        hashedCredentialsMatcher.setHashIterations(1024);
//        //设置凭证匹配器
//        customerRealm.setCredentialsMatcher(hashedCredentialsMatcher);
//        //开启缓存管理
//        //使用ehcache缓存管理器
////        customerRealm.setCacheManager(new EhCacheManager());
//        //使用redis缓存
//        customerRealm.setCacheManager(new RedisCacheManager());
//        //开启全局缓存
//        customerRealm.setCachingEnabled(true);
//        //开启认证缓存
//        customerRealm.setAuthenticationCachingEnabled(true);
//        //设置认证缓存的名字
//        customerRealm.setAuthenticationCacheName("authenticationCache");
//        //开启授权缓存
//        customerRealm.setAuthorizationCachingEnabled(true);
//        //设置授权缓存的名字
//        customerRealm.setAuthorizationCacheName("authorizationCache");
//        return customerRealm;
//    }
//
//
//    //2.创建web下的安全管理器
//    @Bean
//    public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("realm") Realm realm){
//        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
//        //给安全管理器设置realm
//        defaultWebSecurityManager.setRealm(realm);
//        return defaultWebSecurityManager;
//    }
//
//
//    //1.创建shiroFilter,负责拦截所有请求
//    @Bean
//    public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager defaultWebSecurityManager){
//        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//        //给filter设置安全管理器
//        shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager);
//
//        //配置系统的受限资源
//        //配置系统的公共资源
//        Map<String,String> map = new HashMap<>();
//        map.put("/user/login.html","anon");//anon表示请求这个资源可以匿名
//        map.put("user/register.html","anon");
//        map.put("/user/getImage","anon");//请求图片验证码的资源进行放行
//        map.put("/js/jquery.js","anon");
//        map.put("/js/sockjs.js","anon");
//        //map.put("/**","authc");//authc表示请求这个资源需要认证和授权
//
//        //默认认证界面路径
//        shiroFilterFactoryBean.setLoginUrl("/login.html");
//
//        shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
//        return shiroFilterFactoryBean;
//    }
//
//
//}
